
local t = Def.ActorFrame{
-- banner title
	Def.ActorFrame{
	-- song or course banner
		Def.Sprite{
			InitCommand=cmd(Center;);
			OnCommand=function(self)
				if not GAMESTATE:IsCourseMode() then
					local song = GAMESTATE:GetCurrentSong();
					local path;
					local BannerPath = song:GetBannerPath();
					local JacketPath = song:GetJacketPath();
					if song then
						if not BannerPath and not JacketPath then
							BannerPath = THEME:GetPathG("Common fallback","banner");
							self:Load( BannerPath );
						elseif BannerPath and not JacketPath then
							self:Load( BannerPath );
						end;
					end;
				else
					if GAMESTATE:IsCourseMode() then
						local course = GAMESTATE:GetCurrentCourse();
						local path;
						if course then
							local Path = course:GetBannerPath();
							if not Path then
								Path = THEME:GetPathG("Common fallback","banner");
							end;
							self:Load( Path );
						end;
					end;
				end;
				self:x(SCREEN_RIGHT-210);
				self:y(SCREEN_CENTER_Y+60);
				self:diffusealpha(0);
				self:zoomtowidth(SCREEN_WIDTH*2);
				self:zoomtoheight(8/2);
				self:sleep(0.3);
				self:diffusealpha(1);
				self:accelerate(0.3);
				self:zoomtowidth(384);
				self:accelerate(0.2);
				self:zoomtoheight(110);
				self:sleep(1.2);
				self:linear(0.075);
				self:x(SCREEN_CENTER_X);
				self:linear(0.075);
				self:y(SCREEN_CENTER_Y-50);
				self:sleep(0.7);
				self:zoomtoheight(4);
				self:linear(0.1);
				self:zoomtowidth(SCREEN_WIDTH*2);
				self:zoomtoheight(SCREEN_HEIGHT*1.5);
				self:diffusealpha(0);
			end;
		};
	};
};

return t;